// Copyright 2017 The Ray Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//  http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class io_ray_streaming_runtime_transfer_DataWriter */

#ifndef _Included_io_ray_streaming_runtime_transfer_DataWriter
#define _Included_io_ray_streaming_runtime_transfer_DataWriter
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     io_ray_streaming_runtime_transfer_DataWriter
 * Method:    createWriterNative
 * Signature:
 * (Lio/ray/streaming/runtime/transfer/ChannelCreationParametersBuilder;[[B[JJ[BZ)J
 */
JNIEXPORT jlong JNICALL
Java_io_ray_streaming_runtime_transfer_DataWriter_createWriterNative(
    JNIEnv *, jclass, jobject, jobjectArray, jlongArray, jlong, jbyteArray, jboolean);

/*
 * Class:     io_ray_streaming_runtime_transfer_DataWriter
 * Method:    writeMessageNative
 * Signature: (JJJI)J
 */
JNIEXPORT jlong JNICALL
Java_io_ray_streaming_runtime_transfer_DataWriter_writeMessageNative(JNIEnv *, jobject,
                                                                     jlong, jlong, jlong,
                                                                     jint);

/*
 * Class:     io_ray_streaming_runtime_transfer_DataWriter
 * Method:    stopWriterNative
 * Signature: (J)V
 */
JNIEXPORT void JNICALL Java_io_ray_streaming_runtime_transfer_DataWriter_stopWriterNative(
    JNIEnv *, jobject, jlong);

/*
 * Class:     io_ray_streaming_runtime_transfer_DataWriter
 * Method:    closeWriterNative
 * Signature: (J)V
 */
JNIEXPORT void JNICALL
Java_io_ray_streaming_runtime_transfer_DataWriter_closeWriterNative(JNIEnv *, jobject,
                                                                    jlong);

/*
 * Class:     io_ray_streaming_runtime_transfer_DataWriter
 * Method:    getOutputMsgIdNative
 * Signature: (J)[J
 */
JNIEXPORT jlongArray JNICALL
Java_io_ray_streaming_runtime_transfer_DataWriter_getOutputMsgIdNative(JNIEnv *, jobject,
                                                                       jlong);

/*
 * Class:     io_ray_streaming_runtime_transfer_DataWriter
 * Method:    broadcastBarrierNative
 * Signature: (JJJ[B)V
 */
JNIEXPORT void JNICALL
Java_io_ray_streaming_runtime_transfer_DataWriter_broadcastBarrierNative(JNIEnv *,
                                                                         jobject, jlong,
                                                                         jlong,
                                                                         jbyteArray);

/*
 * Class:     io_ray_streaming_runtime_transfer_DataWriter
 * Method:    clearCheckpointNative
 * Signature: (JJ)V
 */
JNIEXPORT void JNICALL
Java_io_ray_streaming_runtime_transfer_DataWriter_clearCheckpointNative(JNIEnv *, jobject,
                                                                        jlong, jlong);

#ifdef __cplusplus
}
#endif
#endif
